// const baseURL = 'http://192.168.1.36:8888/'  // 吴
// const baseURL = 'http://192.168.1.30:8888/'  // 米
// const baseURL = 'https://ktalkapi.qiaonongrenzf.cn/'  // 测试服
const baseURL = 'https://ktalkapimap.chainaibit.com/'  // 正式服
// const baseURL = 'http://t42742817g.zicp.fun/'  // 

import { refreshToken } from '@/api/api.js'

function request(config) {
	// 请求队列
	let requestList = [];
	// 是否正在刷新中
	let isRefreshToken = false;

	// debugger
	return new Promise((resolve, reject) => {
		uni.request({
			url: baseURL + config.url,
			method: config.method,
			data: config.data,
			timeout: 10000,
			header: {
				token: uni.getStorageSync('token')
			},
			success: async(res) => {
				// console.log('res===xxx',res)
				if(res.data.code == 401) {
					if (isRefreshToken) {
						// 正在刷新token,把其他请求存起来
						requestList.push(() => {
							resolve(request(config))
						})
						return;
					}
					isRefreshToken = true;
					// 发送请求, 进行无感刷新token操作, 获取新的token
					const res = await refreshToken(uni.getStorageSync('refreshToken'));

					if(!res.code) {
						uni.setStorageSync('token',res.data.token)
						uni.setStorageSync('refreshToken',res.data.refreshToken)
						requestList.forEach(cb => cb());
						requestList = [];
						isRefreshToken = false;
						// 重新发送刚才的请求
						return resolve(request(config))
					}

				}else {
					resolve(res.data);
				}
			},
			fail:(err) => {
				reject(err);
			}
		})
	})
}

export default request